# multiple  多元化的
# processing 进程
# multiprocessing 多元的处理进程的模块

from multiprocessing import Process
import os
import time
def func(name,age):
    print('% s start '%name)
    time.sleep(1)
    print(os.getpid(),os.getppid(),name,age)#pid process id 进程id #ppid parent process id  父进程id

# print(123,func,id(func))
if __name__ == '__main__':#主进程
    #只会在主进程中执行的所有的代码你写在name=main下
    print('main :',os.getpid(),os.getppid())
    p=Process(target=func,args=('alex',84))
    p.start()#开启一个子进程，会copy父进程if __name__ == '__main__':上的所有代码，
    #开启子进程,start()方法是非常典型的异步非阻塞
    print('hahaha')
    p = Process(target=func, args=('太白', 84))
    p.start()  # 开启一个子进程，会copy父进程if __name__ == '__main__':上的所有代码，
    p = Process(target=func, args=('AK', 19))
    p.start()  # 开启一个子进程，会copy父进程if __name__ == '__main__':上的所有代码，
# 为什么要用 if __name__ == '__main__':
# 能不能给子进程传递参数
# 能不能获取子进程的返回值   # 不能

# 能不能同时开启多个子进程 可以
#join的用法
#同步阻塞 异步非阻塞
# 使用多进程实现一个并发的sokcet的server



























